﻿using System;

namespace 析构函数
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine("Hello World!");
        }
    }
    class aa
    {
        // 语法： 波浪号（~） 加上 类型名。
        // 析构函数：帮助回收废弃对象的内存
        // 定义被抛弃的对象如何降解（如何清内存）
        // 引用链 的断开，方便 GC 的回收 （GC ： garbage collection ，垃圾回收）
        // 一个人存在的价值是 ：被人需要 ，没被人需要 被 GC
        ~aa()//~+类名就是一个析构函数   析构函数帮助我们释放资源
        {
            //clear 清洁，清除
            // 通过 list 的 清除 动作，断开 person 实例对list 内对象的引用，断开引用链
            // 树倒猢狲散
            System.Diagnostics.Debug.WriteLine("程序退出，析构函数被调用");
            Console.WriteLine("5555");
        }
        /*
         1.只能对类使用析构函数。
         2.一个类只能有一个析构函数。
         3.无法继承或重载析构函数。
         4.无法调用析构函数。 它们是被自动调用的。
         5.析构函数既没有修饰符，也没有参数。
         6.不应使用空析构函数。 如果析构函数为空，只会导致不必要的性能损失。
         */
    }
}
